<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>prototype</title>
</head>
<body>
    
<!-- 
    1. 函数的prototype属性
        - 每个函数都有一个prototype属性，它默认指向一个object 空对象(即称为：原型对象)
        - 原型地下中有一属性constructor， 他指向函数对象
    2. 给原型对象添加属性（一般都是方法）
        - 作用：函数的所有实例对象自动拥有原型中的属性（方法）

 -->
<script type="text/javascript">

    function Fun(){

    }

    console.log(Fun.prototype); //默认指向一个 Object 空对象（没有我们的属性）

    // 原型对象中有一个属性 constructor，他指向函数对象
    console.log(Date.prototype.constructor === Date)
    console.log(Fun.prototype.constructor === Fun)

    // 给原型对象添加属性（一般是方法） --》 实例对象可以访问
    Fun.prototype.test = function(){
        console.log('test()')
    }

    var fun = new Fun()
    fun.test()
    console.log(fun.__proto__);

</script>
</body>
</html>